package com.jl.magic.montage.compose;

import com.jl.magic.montage.config.AbstractInlayConfig;
import com.jl.magic.montage.model.Inlay;
import com.jl.magic.montage.model.SubImage;

import java.awt.image.BufferedImage;
import java.util.List;

/**
 * @author jiangli
 * @create 2020/7/14 4:22 下午
 * 抽象的合成器
 */
public abstract class AbstractSynthesizer {

    /**
     * 源图切分后的子图片列表
     */
    protected List<SubImage> subImageList;

    /**
     * 镶元图片列表
     */
    protected List<Inlay> inlayList;

    /**
     * 镶元图片配置
     */
    protected AbstractInlayConfig inlayConfig;

    public AbstractSynthesizer() {
    }

    /**
     * 合成图片
     *
     * @return 合成后的图片
     */
    public abstract BufferedImage compose();

    public List<SubImage> getSubImageList() {
        return subImageList;
    }

    public void setSubImageList(List<SubImage> subImageList) {
        this.subImageList = subImageList;
    }

    public List<Inlay> getInlayList() {
        return inlayList;
    }

    public void setInlayList(List<Inlay> inlayList) {
        this.inlayList = inlayList;
    }

    public AbstractInlayConfig getInlayConfig() {
        return inlayConfig;
    }

    public void setInlayConfig(AbstractInlayConfig inlayConfig) {
        this.inlayConfig = inlayConfig;
    }

}
